1 /* 2 * Collie - An asynchronous event-driven network framework using Dlang development 3 * 4 * Copyright (C) 2015-2017 Shanghai Putao Technology Co., Ltd 5 * 6 * Developer: putao's Dlang team 7 * 8 * Licensed under the Apache-2.0 License. 9 * 10 */ 11 module collie.codec.http.server.httpserveroptions; 12 13 import collie.codec.http.codec.httpcodec; 14 import collie.codec.http.httpmessage; 15 import collie.codec.http.httptansaction; 16 import collie.codec.http.server.requesthandler; 17 import kiss.container.Vector; 18 import std.socket; 19 20 version(USE_SSL){ 21 import collie.bootstrap.serversslconfig; 22 } 23 24 25 class HTTPServerOptions 26 { 27 alias RequestHandlerFactory = RequestHandler delegate(RequestHandler,HTTPMessage); 28 alias HTTPCodecFactory = HTTPCodec delegate(string,TransportDirection); 29 30 this(){ 31 } 32 33 size_t threads = 1; 34 35 RequestHandlerFactory[] handlerFactories; 36 37 size_t timeOut = 30;// seconds 38 39 uint listenBacklog = 1024; 40 41 size_t maxHeaderSize = 60 * 1024; 42 43 version(USE_SSL){ 44 ServerSSLConfig ssLConfig; 45 } 46 47 struct IPConfig 48 { 49 Address address; 50 //HTTPCodecFactory codecFactory = null; 51 //Protocol protocol; 52 bool enableTCPFastOpen = false; 53 uint fastOpenQueueSize = 10000; 54 } 55 } 56